package cc.lucien.reflection;

// 测试什么时候会发生类的初始化
public class Test05 {
    static {
        System.out.println("Main类被加载");
    }

    public static void main(String[] args) throws ClassNotFoundException {
        // 1.主动引用
        //Son son = new Son();

        // 2.反射也会产生主动引用
        //Class clazz = Class.forName("cc.lucien.reflection.Son");

        // 3.不会产生类的引用方法，父类会，子类不会，因为静态变量 b 在父类中
        System.out.println(Son.b);

        // 4.这些都不会加载类，是被动引用
        //Son[] arr = new Son[4];

        //System.out.println(Son.M);
    }
}

class Father{

    static int b = 2;

    static {
        System.out.println("父类被加载");
    }
}

class Son extends Father{
    static {
        System.out.println("子类被加载");
        m = 300;
    }

    static int m = 100;

    static final int M = 1;
}
